Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  properties: {
    showDetail: { // 属性名
      type: Boolean, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
      value: true, // 属性初始值（可选），如果未指定则会根据类型选择一个
      observer: function (newVal, oldVal) { } // 属性被改变时执行的函数（可选），也可以写成在methods段中定义的方法名字符串, 如：'_propertyChange'
    },
    placeholder:{
      type:String,
      value:"搜索"
    }
  },
  data: {
    inputShowed: false,
    inputVal: ""
  },
  /**
   * 组件的方法列表
   * 更新属性和数据的方法与更新页面数据的方法类似
   */
  methods: {
    /*
    * 内部私有方法建议以下划线开头
    * triggerEvent 用于触发事件
    */
    _showInput: function () {
      this.setData({
        inputShowed: true
      });
    },
    _hideInput: function () {
      this.triggerEvent('customevent', "", { bubbles: true, composed: true });
      this.setData({
        inputVal: "",
        inputShowed: false
      });
    },
    _clearInput: function () {
      this.setData({
        inputVal: ""
      });
      this.triggerEvent('customevent', "", { bubbles: true, composed: true });
    },
    _inputTyping: function (e) {
      this.setData({
        inputVal: e.detail.value
      });
      this.triggerEvent('customevent', e.detail.value, { bubbles: true, composed: true });
    }
  }
})